\hypertarget{formats_overview}{}\doxysubsection{Overview}\label{formats_overview}
\hypertarget{formats_read-write-support-levels}{}\doxysubsubsection{Read/\+Write Support Levels}\label{formats_read-write-support-levels}
The table of read/write format support levels uses the status levels described here\+:

\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Status Label   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Description    }\\\cline{1-2}
\endfirsthead
\hline
\endfoot
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Status Label   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Description    }\\\cline{1-2}
\endhead
{\ttfamily rw-\/none}   &Either the format produces no output, reporting an error. Or it produces a Tajima dst file as an alternative.    \\\cline{1-2}
{\ttfamily rw-\/poor}   &A file somewhat similar to our examples is produced. We don\textquotesingle{}t know how well it runs on machines in practice as we don\textquotesingle{}t have any user reports or personal tests.    \\\cline{1-2}
{\ttfamily rw-\/basic}   &Simple files in this format run well on machines that use this format.    \\\cline{1-2}
{\ttfamily rw-\/standard}   &Files with non-\/standard features work on machines and we have good documentation on the format.    \\\cline{1-2}
{\ttfamily rw-\/reliable}   &All known features don\textquotesingle{}t cause crashes. Almost all work as expected.    \\\cline{1-2}
{\ttfamily rw-\/complete}   &All known features of the format work on machines that use this format. Translations from and to this format preserve all features present in both.   \\\cline{1-2}
\end{longtabu}


These can be split into {\ttfamily r-\/basic w-\/none}, for example, if they don\textquotesingle{}t match.

So all formats can, in principle, have good read and good write support, because it\textquotesingle{}s defined in relation to files that we have described the formats for.\hypertarget{formats_test-support-levels}{}\doxyparagraph{Test Support Levels}\label{formats_test-support-levels}
\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Status Label   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Description    }\\\cline{1-2}
\endfirsthead
\hline
\endfoot
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Status Label   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Description    }\\\cline{1-2}
\endhead
{\ttfamily test-\/none}   &No tests have been written to test the specifics of the format.    \\\cline{1-2}
{\ttfamily test-\/basic}   &Stitch Lists and/or colors have read/write tests.    \\\cline{1-2}
{\ttfamily test-\/thorough}   &All features of that format has at least one test.    \\\cline{1-2}
{\ttfamily test-\/fuzz}   &Can test the format for uses of features that we haven\textquotesingle{}t thought of by feeding in nonsense that is designed to push possibly dangerous weaknesses to reveal themselves.    \\\cline{1-2}
{\ttfamily test-\/complete}   &Both thorough and fuzz testing is covered.   \\\cline{1-2}
\end{longtabu}


So all formats can, in principle, have complete testing support, because it\textquotesingle{}s defined in relation to files that we have described the formats for.\hypertarget{formats_documentation-support-levels}{}\doxyparagraph{Documentation Support Levels}\label{formats_documentation-support-levels}
\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Status Label   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Description    }\\\cline{1-2}
\endfirsthead
\hline
\endfoot
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Status Label   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Description    }\\\cline{1-2}
\endhead
{\ttfamily doc-\/none}   &We haven\textquotesingle{}t researched this beyond finding example files.    \\\cline{1-2}
{\ttfamily doc-\/basic}   &We have a rough sketch of the size and contents of the header if there is one. We know the basic stitch encoding (if there is one), but not necessarily all stitch features.    \\\cline{1-2}
{\ttfamily doc-\/standard}   &We know some good sources and/or have tested all the features that appear to exist. They mostly work the way we have described.    \\\cline{1-2}
{\ttfamily doc-\/good}   &All features that were described somewhere have been covered here or we have thoroughly tested our ideas against other softwares and hardwares and they work as expected.    \\\cline{1-2}
{\ttfamily doc-\/complete}   &There is a known official description and our description covers all the same features.   \\\cline{1-2}
\end{longtabu}


Not all formats can have complete documentation because it\textquotesingle{}s based on what information is publically available. So the total score is reported in the table below based on what level we think is available.\hypertarget{formats_overall-support}{}\doxyparagraph{Overall Support}\label{formats_overall-support}
Since the overall support level is the combination of these 4 factors, but rather than summing up their values it\textquotesingle{}s an issue of the minimum support of the 4.

\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Status Label   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Description    }\\\cline{1-2}
\endfirsthead
\hline
\endfoot
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Status Label   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Description    }\\\cline{1-2}
\endhead
{\ttfamily read-\/only}   &If write support is none and read support is not none.    \\\cline{1-2}
{\ttfamily write-\/only}   &If read support is none and write support is not none.    \\\cline{1-2}
{\ttfamily unstable}   &If both read and write support are not none but testing or documentation is none.    \\\cline{1-2}
{\ttfamily basic}   &If all ratings are better than none.    \\\cline{1-2}
{\ttfamily reliable}   &If all ratings are better than basic.    \\\cline{1-2}
{\ttfamily complete}   &If all ratings could not reasonably be better (for example any improvements rely on information that we may never have access to). This is the only status that can be revoked, since if the format changes or new documentation is released it is no longer complete.    \\\cline{1-2}
{\ttfamily experimental}   &For all other scenarios.   \\\cline{1-2}
\end{longtabu}
\hypertarget{formats_table-of-formats}{}\doxysubsubsection{Table of Format Support Levels}\label{formats_table-of-formats}
Overview of documentation support by format.

\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{3}{|X[-1]}|}
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Format   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Ratings   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Score    }\\\cline{1-3}
\endfirsthead
\hline
\endfoot
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Format   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Ratings   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Score    }\\\cline{1-3}
\endhead
Toyota Embroidery Format (.100)   &rw-\/basic doc-\/none test-\/none   &unstable    \\\cline{1-3}
Toyota Embroidery Format (.10o)   &rw-\/basic doc-\/none test-\/none   &unstable    \\\cline{1-3}
Bernina Embroidery Format (.art)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Bitmap Cache Embroidery Format (.bmc)   &r-\/basic w-\/none doc-\/none test-\/none   &unstable    \\\cline{1-3}
Bits and Volts Embroidery Format (.bro)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Melco Embroidery Format (.cnd)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Embroidery Thread Color Format (.col)   &rw-\/basic doc-\/none test-\/none   &{\ttfamily experimental}    \\\cline{1-3}
Singer Embroidery Format (.csd)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Comma Separated Values (.csv)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Barudan Embroidery Format (.dat)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Melco Embroidery Format (.dem)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Barudan Embroidery Format (.dsb)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Tajima Embroidery Format (.dst)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
ZSK USA Embroidery Format (.dsz)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Drawing Exchange Format (.dxf)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Embird Embroidery Format (.edr)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Elna Embroidery Format (.emd)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Melco Embroidery Format (.exp)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Eltac Embroidery Format (.exy)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Sierra Expanded Embroidery Format (.eys)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Fortron Embroidery Format (.fxy)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Smoothie G-\/\+Code Embroidery Format (.gc)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Great Notions Embroidery Format (.gnc)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Gold Thread Embroidery Format (.gt)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Husqvarna Viking Embroidery Format (.hus)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Inbro Embroidery Format (.inb)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Embroidery Color Format (.inf)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Janome Embroidery Format (.jef)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Pfaff Embroidery Format (.ksm)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Pfaff Embroidery Format (.max)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Mitsubishi Embroidery Format (.mit)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Ameco Embroidery Format (.new)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Melco Embroidery Format (.ofm)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Pfaff Embroidery Format (.pcd)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Pfaff Embroidery Format (.pcm)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Pfaff Embroidery Format (.pcq)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Pfaff Embroidery Format (.pcs)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Brother Embroidery Format (.pec)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Brother Embroidery Format (.pel)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Brother Embroidery Format (.pem)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Brother Embroidery Format (.pes)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Brother Embroidery Format (.phb)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Brother Embroidery Format (.phc)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Auto\+CAD Embroidery Format (.plt)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
RGB Embroidery Format (.rgb)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Janome Embroidery Format (.sew)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Husqvarna Viking Embroidery Format (.shv)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Sunstar Embroidery Format (.sst)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Data Stitch Embroidery Format (.stx)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Scalable Vector Graphics (.svg)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Pfaff Embroidery Format (.t01)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Pfaff Embroidery Format (.t09)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Happy Embroidery Format (.tap)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Thred\+Works Embroidery Format (.thr)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Text File (.txt)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Barudan Embroidery Format (.u00)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Barudan Embroidery Format (.u01)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Pfaff Embroidery Format (.vip)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Pfaff Embroidery Format (.vp3)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
Singer Embroidery Format (.xxx)   &rw-\/none doc-\/none test-\/none   &experimental    \\\cline{1-3}
ZSK USA Embroidery Format (.zsk)   &rw-\/none doc-\/none test-\/none   &experimental   \\\cline{1-3}
\end{longtabu}
\hypertarget{formats_format-support}{}\doxysubsubsection{Format Support}\label{formats_format-support}
\index{10o@{10o}} \index{100@{100}} \index{art@{art}} \index{bro@{bro}} \index{cnd@{cnd}} \index{col@{col}} \index{csd@{csd}} \index{dat@{dat}} \index{dem@{dem}} \index{dsb@{dsb}} \index{dst@{dst}} \index{dsz@{dsz}} \index{dxf@{dxf}} \index{edr@{edr}} \index{emd@{emd}} \index{exp@{exp}} \index{exy@{exy}} \index{fxy@{fxy}} \index{gnc@{gnc}} \index{gt@{gt}} \index{hus@{hus}} \index{inb@{inb}} \index{jef@{jef}} \index{ksm@{ksm}} \index{pcd@{pcd}} \index{pcm@{pcm}} \index{pcq@{pcq}} \index{pcs@{pcs}} \index{pec@{pec}} \index{pel@{pel}} \index{pem@{pem}} \index{pes@{pes}} \index{phb@{phb}} \index{phc@{phc}} \index{rgb@{rgb}} \index{sew@{sew}} \index{shv@{shv}} \index{sst@{sst}} \index{svg@{svg}} \index{tap@{tap}} \index{u01@{u01}} \index{vip@{vip}} \index{vp3@{vp3}} \index{xxx@{xxx}} \index{zsk@{zsk}}

$\vert$ FORMAT $\vert$ READ $\vert$ WRITE $\vert$ NOTES $\vert$ $\vert$-\/-\/-\/-\/-\/---$\vert$-\/-\/-\/-\/---$\vert$-\/-\/-\/-\/---$\vert$-\/-\/-\/-\/---$\vert$ $\vert$ {\ttfamily 10o} $\vert$ YES $\vert$ $\vert$ read (need to fix external color loading) (maybe find out what ctrl $\vert$ code flags of 0x10, 0x08, 0x04, and 0x02 mean) $\vert$ $\vert$ {\ttfamily 100} $\vert$ $\vert$ $\vert$ none (4 byte codes) 61 00 10 09 (type, type2, x, y ?) x $\vert$ y (signed char) $\vert$ $\vert$ {\ttfamily 100} $\vert$ $\vert$ $\vert$ none (4 byte codes) 61 00 10 09 (type, type2, x, y ?) x \& y (signed char) $\vert$ $\vert$ {\ttfamily art} $\vert$ $\vert$ $\vert$ none $\vert$ $\vert$ {\ttfamily bro} $\vert$ YES $\vert$ $\vert$ read (complete)(maybe figure out detail of header) $\vert$ $\vert$ {\ttfamily cnd} $\vert$ $\vert$ $\vert$ none $\vert$ $\vert$ {\ttfamily col} $\vert$ $\vert$ $\vert$ (color file no design) read(final) write(final) $\vert$ $\vert$ {\ttfamily csd} $\vert$ YES $\vert$ $\vert$ read (complete) $\vert$ $\vert$ {\ttfamily dat} $\vert$ $\vert$ $\vert$ read () $\vert$ $\vert$ {\ttfamily dem} $\vert$ $\vert$ $\vert$ none (looks like just encrypted cnd) $\vert$ $\vert$ {\ttfamily dsb} $\vert$ YES $\vert$ $\vert$ read (unknown how well) (stitch data looks same as 10o) $\vert$ $\vert$ {\ttfamily dst} $\vert$ YES $\vert$ $\vert$ read (complete) / write(unknown) $\vert$ $\vert$ {\ttfamily dsz} $\vert$ YES $\vert$ $\vert$ read (unknown) $\vert$ $\vert$ {\ttfamily dxf} $\vert$ $\vert$ $\vert$ read (Port to C. needs refactored) $\vert$ $\vert$ {\ttfamily edr} $\vert$ $\vert$ $\vert$ read (C version is broken) / write (complete) $\vert$ $\vert$ {\ttfamily emd} $\vert$ $\vert$ $\vert$ read (unknown) $\vert$ $\vert$ {\ttfamily exp} $\vert$ YES $\vert$ $\vert$ read (unknown) / write(unknown) $\vert$ $\vert$ {\ttfamily exy} $\vert$ YES $\vert$ $\vert$ read (need to fix external color loading) $\vert$ $\vert$ {\ttfamily fxy} $\vert$ YES $\vert$ $\vert$ read (need to fix external color loading) $\vert$ $\vert$ {\ttfamily gnc} $\vert$ $\vert$ $\vert$ none $\vert$ $\vert$ {\ttfamily gt} $\vert$ $\vert$ $\vert$ read (need to fix external color loading) $\vert$ $\vert$ {\ttfamily hus} $\vert$ YES $\vert$ $\vert$ read (unknown) / write (C version is broken) $\vert$ $\vert$ {\ttfamily inb} $\vert$ YES $\vert$ $\vert$ read (buggy?) $\vert$ $\vert$ {\ttfamily jef} $\vert$ YES $\vert$ $\vert$ write (need to fix the offsets when it is moving to another spot) $\vert$ $\vert$ {\ttfamily ksm} $\vert$ YES $\vert$ $\vert$ read (unknown) / write (unknown) $\vert$ $\vert$ {\ttfamily pcd} $\vert$ $\vert$ $\vert$ $\vert$ $\vert$ {\ttfamily pcm} $\vert$ $\vert$ $\vert$ $\vert$ $\vert$ {\ttfamily pcq} $\vert$ $\vert$ $\vert$ read (Port to C) $\vert$ $\vert$ {\ttfamily pcs} $\vert$ BUGGY $\vert$ $\vert$ read (buggy / colors are not correct / after reading, writing any other format is messed up) $\vert$ $\vert$ {\ttfamily pec} $\vert$ $\vert$ $\vert$ read / write (without embedded images, sometimes overlooks some stitches leaving a gap) $\vert$ $\vert$ {\ttfamily pel} $\vert$ $\vert$ $\vert$ none $\vert$ $\vert$ {\ttfamily pem} $\vert$ $\vert$ $\vert$ none $\vert$ $\vert$ {\ttfamily pes} $\vert$ YES $\vert$ $\vert$ $\vert$ $\vert$ {\ttfamily phb} $\vert$ $\vert$ $\vert$ $\vert$ $\vert$ {\ttfamily phc} $\vert$ $\vert$ $\vert$ $\vert$ $\vert$ {\ttfamily rgb} $\vert$ $\vert$ $\vert$ $\vert$ $\vert$ {\ttfamily sew} $\vert$ YES $\vert$ $\vert$ $\vert$ $\vert$ {\ttfamily shv} $\vert$ $\vert$ $\vert$ read (C version is broken) $\vert$ $\vert$ {\ttfamily sst} $\vert$ $\vert$ $\vert$ none $\vert$ $\vert$ {\ttfamily svg} $\vert$ $\vert$ YES $\vert$ $\vert$ $\vert$ {\ttfamily tap} $\vert$ YES $\vert$ $\vert$ read (unknown) $\vert$ $\vert$ {\ttfamily u01} $\vert$ $\vert$ $\vert$ $\vert$ $\vert$ {\ttfamily vip} $\vert$ YES $\vert$ $\vert$ $\vert$ $\vert$ {\ttfamily vp3} $\vert$ YES $\vert$ $\vert$ $\vert$ $\vert$ {\ttfamily xxx} $\vert$ YES $\vert$ $\vert$ $\vert$ $\vert$ {\ttfamily zsk} $\vert$ $\vert$ $\vert$ read (complete) $\vert$

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000199}{Todo}}]Josh, Review this section and move any info still valid or needing work into TODO comments in the actual libembroidery code. Many items in this list are out of date and do not reflect the current status of libembroidery. When finished, delete this file.\end{DoxyRefDesc}



\begin{DoxyItemize}
\item Test that all formats read data in correct scale (format details should match other programs)
\item Add which formats to work with to preferences.
\item Check for memory leaks
\item Update all formats without color to check for edr or rgb files
\item Fix issues with DST (VERY important that DST work well)

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000200}{Todo}}]Support for Singer FHE, CHE (Compucon) formats?\end{DoxyRefDesc}

\end{DoxyItemize}